package org.xteam.sled.semantic;

import java.util.List;
import java.util.Map;

import org.xteam.parser.runtime.AstList;
import org.xteam.parser.runtime.Span;
import org.xteam.sled.ast.OpName;


public interface IEvaluationContext extends IErrorContext {
	
	IDenotable lookup(String name, Span span);

	IDenotable lookupOpt(String name);

	IDenotable lookupGlobal(String name, Span span);
	
	InstructionConstructor lookupConstructor(String name, Span span);

	List<OpcodeElement> explodeOpcode(AstList<OpName> opcode);

	Map<String, Integer> getNamesOf(Field field);

	Field optField(String name);

}
